/**j-sort上下图标组件的串联类 */
import { Ref, toRaw } from "vue";
enum SortEnum {
    NONE,
    UP,
    DOWN
}
interface SortType {
    key: number | string;
    val: SortEnum;
}
class Sort {
    sort: Ref<SortType[]>;
    callFun!: (item: SortType) => void;
    constructor(sort: Ref<SortType[]>) {
        this.sort = sort;
    }
    onDown(item: SortType) {
        this.sort.value.forEach(item_ => {
            if (item_.key !== item.key) {
                item_.val = SortEnum.NONE;
            } else {
                switch (item.val) {
                    case SortEnum.NONE:
                        item_.val = SortEnum.UP;
                        break;
                    case SortEnum.UP:
                        item_.val = SortEnum.DOWN;
                        break;
                    case SortEnum.DOWN:
                        item_.val = SortEnum.NONE;
                        break;
                }
                this.callFun(toRaw(item));
            }
        });
    }
}

export { Sort, SortEnum };
export type { SortType };
